Modern distributed computer systems are frequently implemented with a plurality of guest virtual computing systems that operate on one or more host computer environments. Such computer systems often create, destroy, suspend and resume guest virtual machines on a regular basis. At the same time, the distributed systems in which the guest virtual machines are implemented are often highly complex, comprising large numbers of networked host machines. Inefficient placement algorithms may consume significant time in placing the guest virtual machines as they are instantiated, particularly when there are a large number of host systems or when those host systems are overly crowded. Frequently such placement algorithms do not scale well, becoming increasingly slow when the numbers of guest virtual machines and host computer environments grow. As the size and complexity of distributed and/or virtualized computing systems increase, inefficient placement and instantiation of guest virtual computing systems on host computer environments may lead to system slowdowns and/or outages and may adversely affect system availability and performance.